package com.kun.util.aspect;

import org.aspectj.lang.JoinPoint;

import com.kun.util.LoggerUtil;

/**
 * aop切面类
 * @author Administrator
 *
 */
public class Aspect {

	/**
	 * 前置通知
	 * @param jp
	 */
	public void before(JoinPoint jp){
		String className = jp.getTarget().getClass().getName();
		String methodName = jp.getSignature().getName();
		
		LoggerUtil.printBeginMethod(className, methodName);
	}
	
	/**
	 * 后置通知
	 * @param jp
	 */
	public void after(JoinPoint jp){
		String className = jp.getTarget().getClass().getName();
		String methodName = jp.getSignature().getName();
		
		LoggerUtil.printEndMethod(className, methodName);
	}
	
	
	
	
	/*public void throwEx(JoinPoint jp,Exception e){
		
		String className = jp.getTarget().getClass().getName();
		String methodName = jp.getSignature().getName();
//		System.out.println("出错了"+className+"中的"+methodName+"方法 --- aspect"
//				+e.getMessage());
		log.error("出错了"+className+"中的"+methodName+"方法 --- throwEx"
				+e.getMessage());
	}
	
	public void afterReturn(JoinPoint jp){
		
		String className = jp.getTarget().getClass().getName();
		String methodName = jp.getSignature().getName();
		log.info("end 结束"+className+"中的"+methodName+"方法 --- afterReturn");
	}
	*//**
	 * 环绕
	 * @throws Throwable 
	 *//*
	public Object around(ProceedingJoinPoint pjp) throws Throwable{
		//获取参数
		Object[] args = pjp.getArgs();
		String className = pjp.getTarget().getClass().getName();
		String methodName = pjp.getSignature().getName();
		if(methodName.equals("chu")){
			if((Integer)args[1] == 0){
				log.error("除数不能为0");
				args[1] = 1;
			}
		}
		log.info("end 结束"+className+"中的"+methodName+"方法---around");
		return pjp.proceed(args);
	}*/
	
	
	
}
